package com.investment.advisor.service;

import com.investment.advisor.dto.TradeDTO;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

public interface TradeService {
    List<TradeDTO> getAllTrades();
    TradeDTO getTradeById(Long id);
    List<TradeDTO> getTradesByPortfolioId(Long portfolioId);
    List<TradeDTO> getTradesByFundId(Long fundId);
    List<TradeDTO> getTradesByPortfolioAndFund(Long portfolioId, Long fundId);
    List<TradeDTO> getTradesByAction(String action);
    List<TradeDTO> getTradesByStatus(String status);
    List<TradeDTO> getTradesByCreator(String creator);
    List<TradeDTO> getTradesByDateRange(LocalDate startDate, LocalDate endDate);
    List<TradeDTO> getTradesByPortfolioAndDateRange(Long portfolioId, LocalDate startDate, LocalDate endDate);
    TradeDTO createTrade(TradeDTO tradeDTO);
    TradeDTO updateTrade(Long id, TradeDTO tradeDTO);
    TradeDTO updateTradeStatus(Long id, String status);
    void deleteTrade(Long id);
} 